package org.droidexpress.data.write;

import org.droidexpress.data.InfoLivraison;
import org.droidexpress.data.read.LectureTournee;

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class EnregistrementTournee extends LectureTournee {
	private CreationXML creationXML = new CreationXML("/DroidExpress/bons_livraisons/");
	private InfoLivraison infoLivraison = new InfoLivraison();

	public EnregistrementTournee() {
		lireTournee();
	}

	public InfoLivraison getInfoLivraison() {
		return infoLivraison;
	}

	public void creerBonLivraison(int numLivraison) {

		creationXML.creerFichier("bon_livraison_" + getDate() + "_" + getTime() + ".xml");
		creationXML.debutFichierXML();

		// ROOT
		creationXML.ouvrirBalise("bon_livraison");

		creationXML.creerBalise("id", tournee.getLivraison(numLivraison).id);
		
		// INFO LIVRAISON
		creationXML.ouvrirBalise("info_livraison");
		creationXML.creerBalise("remise", infoLivraison.remise);
		creationXML.creerBalise("date", getDate()/* infoLivraison.date */);
		creationXML.creerBalise("heure", getTime()/*infoLivraison.heure*/);
		creationXML.creerBalise("coordonnees", infoLivraison.commentaire);
		creationXML.creerBalise("motif", infoLivraison.motif);
		creationXML.creerBalise("commentaire", infoLivraison.commentaire);
		creationXML.fermerBalise("info_livraison");

		// EXPEDITEUR
		creationXML.ouvrirBalise("expediteur");
		creationXML.creerBalise("nom", getExpediteur(numLivraison).nom);
		creationXML.creerBalise("rue", getExpediteur(numLivraison).rue);
		creationXML.creerBalise("cp", getExpediteur(numLivraison).cp);
		creationXML.creerBalise("ville", getExpediteur(numLivraison).ville);
		creationXML.creerBalise("telephone", getExpediteur(numLivraison).telephone);
		creationXML.fermerBalise("expediteur");

		// COLIS
		creationXML.ouvrirBalise("colis");
		creationXML.creerBalise("nombre", getColis(numLivraison).nombre);
		for (int numPaquet = 0; numPaquet < Integer.parseInt(getColis(numLivraison).nombre); numPaquet++) {
			creationXML.ouvrirBalise("paquet");
			creationXML.creerBalise("code_barre", getColis(numLivraison).getPaquet(numPaquet).code_barre);
			creationXML.creerBalise("taille", getColis(numLivraison).getPaquet(numPaquet).taille);
			creationXML.creerBalise("poids", getColis(numLivraison).getPaquet(numPaquet).poids);
			creationXML.creerBalise("accepter", getColis(numLivraison).getPaquet(numPaquet).accepter);
			creationXML.creerBalise("motif", getColis(numLivraison).getPaquet(numPaquet).motif);
			creationXML.fermerBalise("paquet");
		}
		creationXML.fermerBalise("colis");

		// DESTINATAIRE
		creationXML.ouvrirBalise("destinataire");
		creationXML.creerBalise("nom", getDestinataire(numLivraison).nom);
		creationXML.creerBalise("rue", getDestinataire(numLivraison).rue);
		creationXML.creerBalise("cp", getDestinataire(numLivraison).cp);
		creationXML.creerBalise("ville", getDestinataire(numLivraison).ville);
		creationXML.creerBalise("complement_adresse", getDestinataire(numLivraison).complement_adresse);
		creationXML.creerBalise("telephone", getDestinataire(numLivraison).telephone);
		creationXML.creerBalise("portable", getDestinataire(numLivraison).portable);
		creationXML.fermerBalise("destinataire");

		creationXML.fermerBalise("bon_livraison");

		creationXML.finEtFermerFichierXML();
	}

	private String getDate() {
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date date = new Date();
		return dateFormat.format(date);
	}

	private String getTime() {
		DateFormat dateFormat = new SimpleDateFormat("HH.mm.ss");
		Date date = new Date();
		return dateFormat.format(date);
	}
}
